<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script>
			// 数据类型转换
			// 一、转字符串 二、转数字 三、转布尔
			
			//一、转换为字符串
			// 1:临时转换 toString()-变量.toString()（变量放在前面，括号是空的）
			
				//数字型转字符串
				var a = 1;
				console.log(a);//1(number)
				console.log(a.toString());//1(String)
				console.log(typeof a);//number
				//只有当toString，才会临时变为string类型
				console.log(typeof a.toString());//String
				var str0 = a.toString();//保留转换后的变量
				console.log(typeof str0);//String
			
				//布尔类型转字符串
				var flag1 = true;
				console.log(flag1);//蓝色的true(boolean)
				console.log(flag1.toString());//黑色的true(String)
				//类型检测
				console.log(typeof flag1);//boolean
				console.log(typeof flag1.toString());//String
			
			//2:强制转换 String()-String(变量)（数据类型在前，括号内放变量）
				
				//数字型转字符串
				var b = 2;
				console.log(String(b));//黑色2(String)
				var str1 = String (b);//保留转换后的变量
				console.log(typeof str1);//String
				
				//布尔类型转字符串
				var flag2 = false;
				console.log(String(flag2));//黑色2(String)
				var str2 = String (flag2);
				console.log(typeof str2);//黑色2(String)
			
			//3:隐式转换+加号 拼接字符串，转换为字符串（最常用的方式）
				var num1 = 1;
				// alert(num1+"");//通过加号把数字型与字符型相加，转换为字符串
				var str3 = num1 + "";
				console.log(typeof str3);//String
				//或者
				var num2 = "1";
				console.log(typeof num2);//String
			
			//练习1: PI的3.14转换为字符串String
				var PI = 3.14;
				console.log(typeof PI.toString());//第一种
				console.log(typeof String(PI));//第二种
				var piStr = PI + "";
				console.log(typeof piStr);//第三种
				
			//二、转换为整数型int/浮点型float
				
				//1.取整 parseInt(变量);
				//前提：变量不能是数值型，不然就没用了
				console.log(parseInt("3.14"));//蓝色3 (number)
				//测试类型
				var num3 = parseInt("3.14");
				console.log(typeof num3);//number
				
				console.log(parseInt("3.94"));//还是3，结果直接取整
				console.log(parseInt("120px"));//120 只有120是数字
				console.log(parseInt("-18"));//-18 
				
				//2.取浮点 parseFloat(变量);
				console.log(parseFloat("3.14"));
				console.log(parseFloat("120px"));//因为是number类型，所以不是120.0
				console.log(parseFloat("rem120"));//not a Number(读到第一个的内容不是数字)
				console.log(parseFloat("-18")); 
				
				//3.强制转换 Number(变量);
				var str4 = "123";
				console.log(Number(str4));//蓝色123 (number)
				console.log(typeof Number(str4));//number
				console.log(typeof Number("123"));//number
				
				//4.利用算数运算: +-*/ 隐式运算
				console.log("120"-0);//120(number)最常用的方式
				console.log(false-1);//-1(number)
				console.log("120"-false);//120(number)
				console.log("120"+false);//120false(String)
				console.log("123"+"120");//123120(String)
				console.log("123"+4);//字符串型+其他类型的任何结果均为字符串，故结果为1234(String)
				console.log(4+"123");
				console.log("123"-"120");//3(number)
				console.log(""*"");//0(number)
				console.log("123"*1);//123(number)
				
			//三、转换为布尔类型Boolan
				//只有1才是true，其他均为false(Boolean)
				console.log(Boolean(""));//false空字符串
				console.log(Boolean(0));//false
				console.log(Boolean(NaN));//false非数值
				console.log(Boolean(undefined));//false未定义
				console.log(Boolean(null));//false空
				
				
				document.write(160%9);
				document.write("a90"+90);
		</script>
	</body>
</html>